/*
 * Copyright (c) 2020 hebeiyiliuba.com
 * All rights reserved.
 *
 */
package org.jeecg.modules.third.jg.report.information.dto.shippingnote;

import lombok.Data;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import java.io.Serializable;

/**
 * 电子运单
 *
 * @author duanlikao
 * @created 2021/1/4
 */
@Data
@XmlAccessorType(XmlAccessType.FIELD)
public class ShippingNoteDTO implements Serializable {
    /**
     * 原始单号 上游企业委托运输单号
     */
    @XmlElement
    private String OriginalDocumentNumber;
    /**
     * 运单号
     */
    @XmlElement
    private String ShippingNoteNumber;
    /**
     * 运输总车辆数 同一运单号的货物总共 使用的运输车辆总数
     */
    @XmlElement
    private int VehicleAmount;
    /**
     * 分段分单号 分段运输和多车运输由 四位数字组成， 前两位代表一 单多车的序号，后两位代表分 段序号。
     * 若运输形式为一单一 车填 0000。
     */
    @XmlElement
    private String SerialNumber;
    /**
     * 运输组织类型代码
     * 1 公路运输
     * 2 公铁联运
     * 3 公水联运
     * 4 公空联运
     * 5 公铁水联运
     * 6 公铁空联运
     * 7 公水空联运
     * 8 公铁水空联运
     */
    @XmlElement
    private int TransportTypeCode;
    /**
     * 运单上传 时间
     */
    @XmlElement
    private String SendToProDateTime;
    /**
     * 网络货运 经营者名称
     */
    @XmlElement
    private String Carrier;
    /**
     * 统一社会 信用代码
     */
    @XmlElement
    private String UnifiedSocialCreditIdentifier;
    /**
     * 道路运输经营许可 网络货运经营者的道路 运输经营许可证编号。
     */
    @XmlElement
    private String PermitNumber;
    /**
     * 运单生成时间 网络货运经营者信息系 统正式成交生成运单的日期时 间。YYYYMMDDhhmmss
     */
    @XmlElement
    private String ConsignmentDateTime;
    /**
     * 业务类型代码 代码集。 BusinessTypeCodeEnum
     */
    @XmlElement
    private String BusinessTypeCode;
    /**
     * 发货日期时间 本单货物的发货时间 。 YYYYMMDDhhmmss
     */
    @XmlElement
    private String DespatchActualDateTime;
    /**
     * 收货日期时间 ，本单货物的收货时间 YYYYMMDDhhmmss 。
     */
    @XmlElement
    private String GoodsReceiptDateTime;
    /**
     * 运费金额  托运人与网络货运经营 者签订运输合同确定的运费金 额，货币单位为人民币（元） ，
     * 保留 3 位小数，如整数的话 ，以.000 填充。如是一笔业务 分几辆车运，
     * 需将托运人针对 这笔业务付给网络货运经营者 的运输费用分摊到每辆车上。
     */
    @XmlElement
    private String TotalMonetaryAmount;
    /**
     * 油卡路桥费用等（运输过程中非人力成本），货币单位为人民币（元），保留3位小数， 如整数的话，以.000填充。
     */
    @XmlElement
    private String TransportationCost;
    /**
     *运输的总里程数，单位为 公里。
     */
    @XmlElement
    private String TransportationDistance;
    /**
     *网络货运经营者在收 货人确认收货后，全部完成该 笔运单的时间 YYYYMMDDhhmmss。
     */
    @XmlElement
    private String FinishDateTime;


    @XmlElement
    private ConsignorInfo ConsignorInfo;
    @XmlElement
    private ConsigneeInfo ConsigneeInfo;
    @XmlElement
    private VehicleInfo VehicleInfo;
    @XmlElement
    private ActualCarrierInfo ActualCarrierInfo;
    @XmlElement
    private InsuranceInformation InsuranceInformation;
    @XmlElement
    private String Remark;

    public void setOriginalDocumentNumber(String originalDocumentNumber) {
        this.OriginalDocumentNumber = originalDocumentNumber;
    }
    public String getOriginalDocumentNumber() {
        return OriginalDocumentNumber;
    }

    public void setShippingNoteNumber(String shippingNoteNumber) {
        this.ShippingNoteNumber = shippingNoteNumber;
    }
    public String getShippingNoteNumber() {
        return ShippingNoteNumber;
    }

    public void setVehicleAmount(int vehicleAmount) {
        this.VehicleAmount = vehicleAmount;
    }
    public int getVehicleAmount() {
        return VehicleAmount;
    }

    public void setSerialNumber(String serialNumber) {
        this.SerialNumber = serialNumber;
    }
    public String getSerialNumber() {
        return SerialNumber;
    }

    public void setTransportTypeCode(int transportTypeCode) {
        this.TransportTypeCode = transportTypeCode;
    }
    public int getTransportTypeCode() {
        return TransportTypeCode;
    }

    public void setSendToProDateTime(String sendToProDateTime) {
        this.SendToProDateTime = sendToProDateTime;
    }
    public String getSendToProDateTime() {
        return SendToProDateTime;
    }

    public void setCarrier(String carrier) {
        this.Carrier = carrier;
    }
    public String getCarrier() {
        return Carrier;
    }

    public void setUnifiedSocialCreditIdentifier(String unifiedSocialCreditIdentifier) {
        this.UnifiedSocialCreditIdentifier = unifiedSocialCreditIdentifier;
    }
    public String getUnifiedSocialCreditIdentifier() {
        return UnifiedSocialCreditIdentifier;
    }

    public void setPermitNumber(String permitNumber) {
        this.PermitNumber = permitNumber;
    }
    public String getPermitNumber() {
        return PermitNumber;
    }

    public void setConsignmentDateTime(String consignmentDateTime) {
        this.ConsignmentDateTime = consignmentDateTime;
    }
    public String getConsignmentDateTime() {
        return ConsignmentDateTime;
    }

    public void setBusinessTypeCode(String businessTypeCode) {
        this.BusinessTypeCode = businessTypeCode;
    }
    public String getBusinessTypeCode() {
        return BusinessTypeCode;
    }

    public void setDespatchActualDateTime(String despatchActualDateTime) {
        this.DespatchActualDateTime = despatchActualDateTime;
    }
    public String getDespatchActualDateTime() {
        return DespatchActualDateTime;
    }

    public void setGoodsReceiptDateTime(String goodsReceiptDateTime) {
        this.GoodsReceiptDateTime = goodsReceiptDateTime;
    }
    public String getGoodsReceiptDateTime() {
        return GoodsReceiptDateTime;
    }

    public void setTotalMonetaryAmount(String totalMonetaryAmount) {
        this.TotalMonetaryAmount = totalMonetaryAmount;
    }
    public String getTotalMonetaryAmount() {
        return TotalMonetaryAmount;
    }

    public String getTransportationCost() {
        return TransportationCost;
    }

    public void setTransportationCost(String transportationCost) {
        TransportationCost = transportationCost;
    }

    public String getTransportationDistance() {
        return TransportationDistance;
    }

    public void setTransportationDistance(String transportationDistance) {
        TransportationDistance = transportationDistance;
    }

    public String getFinishDateTime() {
        return FinishDateTime;
    }

    public void setFinishDateTime(String finishDateTime) {
        FinishDateTime = finishDateTime;
    }

    public void setConsignorInfo(
            ConsignorInfo consignorInfo) {
        this.ConsignorInfo = consignorInfo;
    }
    public ConsignorInfo getConsignorInfo() {
        return ConsignorInfo;
    }

    public void setConsigneeInfo(
            ConsigneeInfo consigneeInfo) {
        this.ConsigneeInfo = consigneeInfo;
    }
    public ConsigneeInfo getConsigneeInfo() {
        return ConsigneeInfo;
    }

    public void setVehicleInfo(
            VehicleInfo vehicleInfo) {
        this.VehicleInfo = vehicleInfo;
    }
    public VehicleInfo getVehicleInfo() {
        return VehicleInfo;
    }

    public void setActualCarrierInfo(
            ActualCarrierInfo actualCarrierInfo) {
        this.ActualCarrierInfo = actualCarrierInfo;
    }
    public ActualCarrierInfo getActualCarrierInfo() {
        return ActualCarrierInfo;
    }

    public void setInsuranceInformation(
            InsuranceInformation insuranceInformation) {
        this.InsuranceInformation = insuranceInformation;
    }
    public InsuranceInformation getInsuranceInformation() {
        return InsuranceInformation;
    }

    public void setRemark(String remark) {
        this.Remark = remark;
    }
    public String getRemark() {
        return Remark;
    }

}